
package Settings;

public class Settings {

    /*
     *  load settings for genetic algorithms
     */
    public static int GENERATION = 200;

    public static int POPULATION = 100;

    public static int SHUFFLE_PER_ITERATION = 5;

    public static int REPEAT_GENERATION_PER_ITERATION = 10;


    /*
     *  load settings for individuals
     */
    public static int CHROMOSOME_NUMBER_OF_CLUSTERS = 6;

    public static int CHROMOSOME_NUMBER_OF_FEATURES = 13; //4, 13
    
    //granularity: ( MaxValue - MinValue ) / chromosome_NumberOfBitsPerValue
    public static int CHROMOSOME_NUMBER_OF_BITS_PER_VALUE = 8;

    public static float PROPABILITY_CROSSOVER = 0.9f;

    public static float PROPABILITY_MUTATION = //0.001f;
        1.75f / (float)(Math.sqrt( CHROMOSOME_NUMBER_OF_CLUSTERS *
                                   CHROMOSOME_NUMBER_OF_FEATURES *
                                   CHROMOSOME_NUMBER_OF_BITS_PER_VALUE
                                 ) * POPULATION
                       );
    
    //0 - euclides, 1 - DB index, 2 - F rate
    public static int FITNESS_FUNCTION_TYPE = 0;

    //0 - one-point
    public static int CROSSOVER_FUNCTION_TYPE = 0;

    //0 - standard
    public static int MUTATION_FUNCTION_TYPE = 0;

    public static boolean EXTERNAL_REPRODUCTION = true;


    /*
     *  load settings for loaders
     */
    public static String FILE = "wine.data";//"iris.data"; //"wine.data"

    public static int NUMBER_OF_CLASS = 3;

    public static int PERCENT_DATA_LEARN = 50;

    public static int NUMBER_OF_REPEAT_SHUFFLE_DATA = 150;


    /*
     *  Other settings
     */
    public static boolean PRINT_DEBBUG = false;

}
